package cn.ithers.blog.controller.portal;

import cn.ithers.blog.response.ResponseResult;
import cn.ithers.blog.service.IFriendLinkService;
import cn.ithers.blog.service.ILoopService;
import cn.ithers.blog.service.IWebSiteInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author: zhanghuan
 * @date: 2020/8/28 16:50
 * @description:
 */

@Api(value = "网站信息", tags = "网站信息")
@RestController
@RequestMapping("/portal/web_size_info")
public class WebSizeInfoPortalApi {


    @Autowired
    private IFriendLinkService friendLinkService;

    @Autowired
    private ILoopService loopService;

    @Autowired
    private IWebSiteInfoService webSiteInfoService;


    /**
     * 获取网站标题title
     *
     * @return
     */
    @ApiOperation("获取网站标题")
    @GetMapping("/title")
    public ResponseResult getWebSizeTitle() {
        return webSiteInfoService.getWebSiteTitle();
    }

    /**
     * 获取访问量数据view-count
     *
     * @return
     */
    @ApiOperation("获取访问量数据")
    @GetMapping("/view_count")
    public ResponseResult getWebSizeViewCount() {
        return webSiteInfoService.getSiteViewCount();
    }

    /**
     * 获取SEO信息seo
     *
     * @return
     */
    @ApiOperation("获取seo信息")
    @GetMapping("/seo")
    public ResponseResult getWebSizeSeo() {
        return webSiteInfoService.getSeoInfo();
    }

    /**
     * 获取轮播图列表looper-list
     *
     * @return
     */
    @ApiOperation("获取轮播图列表")
    @GetMapping("/loop")
    public ResponseResult getLoops() {
        return loopService.loopsList();
    }

    /**
     * 获取友情链接列表
     *
     * @return
     */

    @ApiOperation("获取友情链接")
    @GetMapping("/friend_link")
    public ResponseResult getLinks() {
        return friendLinkService.getFriendLinkList();
    }

    /**
     * 统计访问量，每个页码统计一次，PV page,view
     * 直接增加一个访问量，可以刷量
     * //根据ip进行过滤，可以集成第三方统计工具
     * 递增统计，通过redis统计，数据保存在mysql
     * 不会每次都更新到mysql，当用户去获取访问量的时候，会更新一次
     * 平时调用，只增加redis里的访问量
     * reids时机：没给页面访问的时候，如果不存在就从mysql里读取数据，写道redis里
     * 如果有，就自增
     * mysql时机：用户读取网站总访问量的时候，我们读取redis的并更新到mysql中
     * 如果redis里面没有，就读取mysql里到redis中
     */
    @ApiOperation("统计访问量")
    @PutMapping("/view_count")
    public void updateViewCount() {
        webSiteInfoService.updateViewCount();

    }

}
